var sysId = "";
var nodeId = "";
var nodeName = "";
var tableName = "";
var nodeTypeNew = "";
var src = "";
var isTemplet = "N";
var isHasData = false;
var editIndex = undefined;
var isTrueTable = "Y";
var nodeCode = "";
var copyNodeData; // 复制页面的第二颗树 数据源
var type; // 当前字段类型选择选择的值
// var length = "";
/**
 * 获取url参数（主要解决iframe传递参数）
 */
function getUrlParam(src, key) {
	if (src.lastIndexOf("?") != -1) {
		var queryStr = src.substring(src.lastIndexOf("?") + 1, src.length);
		if (!key) {
			return queryStr; // 返回所有参数
		} else {
			var params = queryStr.split("&");
			for ( var j = 0; j < params.length; j++) {
				var tmp = params[j].split("=");
				if (tmp[0] == key) {
					return tmp[1];
					break;
				}
			}
		}
	}
}
/**
 * 用于单元格编辑是重写的方法
 */
$.extend($.fn.datagrid.methods, {
	editCell : function(jq, param) {
		return jq.each(function() {
			var fields = $(this).datagrid('getColumnFields', true).concat(
					$(this).datagrid('getColumnFields'));
			for ( var i = 0; i < fields.length; i++) {
				var col = $(this).datagrid('getColumnOption', fields[i]);
				col.editor1 = col.editor;
				if (fields[i] != param.field) {
					var fieldOpts = $(this).datagrid('getColumnOption',
							fields[i]);
					if (!fieldOpts.hidden || fieldOpts.hidden == false) {
						col.editor = null;
					}
				}
			}
			$(this).datagrid('beginEdit', param.index);
			for ( var i = 0; i < fields.length; i++) {
				var col = $(this).datagrid('getColumnOption', fields[i]);
				col.editor = col.editor1;
			}
		});
	},
	addEditor : function(jq, param) {
		if (param instanceof Array) {
			$.each(param, function(index, item) {
				var e = $(jq).datagrid('getColumnOption', item.field);
				e.editor = item.editor;
			});
		} else {
			var e = $(jq).datagrid('getColumnOption', param.field);
			e.editor = param.editor;
		}
	},
	removeEditor : function(jq, param) {
		if (param instanceof Array) {
			$.each(param, function(index, item) {
				var e = $(jq).datagrid('getColumnOption', item);
				e.editor = {};
			});
		} else {
			var e = $(jq).datagrid('getColumnOption', param);
			e.editor = {};
		}
	}
});
/**
 * 单元格点击事件
 * 
 * @param index
 * @param field
 * @param value
 */
function onClickCell(index, field, value) {
	var rowDataNew = $('#cbbTabColumnsDataGrid').datagrid('getData').rows[index]; // 当前行
	var isSysCol = "N"; // 是否系统初始化字段,默认否
	var isNewNew = "";
	if (rowDataNew != undefined) {
		isNewNew = rowDataNew.isNew;
		isSysCol = rowDataNew.colIsSys;
	}
	if (field == 'colName' && parent.parent.currentOrgId!='ORG_ROOT'){
		endEditing();
		return ;
	}
	// 验证点击之前的行
	if (editIndex == index || endEditing()) {
		$('#cbbTabColumnsDataGrid').datagrid('endEdit', editIndex);
		if (isNewNew == "Y") { // 新增行
			if (field == 'colLabel') {
				changeName(editIndex, index, field);
			}
			$('#cbbTabColumnsDataGrid').datagrid('selectRow', index).datagrid('editCell', {
				index : index,
				field : field
			});
		} else { // 加载行
			if (isSysCol == "Y") { // 是系统初始化字段
				if (field == 'colName' || field == 'colType' || field == 'colDecimal') {
					//commonLang.tip.alert'提示' commonLang.tip.alert6  '此记录为系统字段，不允许修改此列！'
					$.messager.alert(commonLang.tip.alert, commonLang.tip.alert6, 'warning');
					editIndex = index;
					return false;
				} else if (field == 'colLabel' || field == 'colOrder' || field == 'attribute11' || field == 'remark') {
					$('#cbbTabColumnsDataGrid').datagrid('selectRow', index).datagrid('editCell', {
						index : index,
						field : field
					});
				} else if (field == 'colLength') {
					$('#cbbTabColumnsDataGrid').datagrid('selectRow', index).datagrid('editCell', {
						index : index,
						field : field
					});
				}
			} else { // 不是系统初始化字段
				if (!isHasData) { // 不存在数据
					if (field != 'colIsSys' && field != 'attribute01' && field != 'colIsDisplay' && field != 'colIsMust') {
						$('#cbbTabColumnsDataGrid').datagrid('selectRow', index).datagrid('editCell', {
							index : index,
							field : field
						});
					}
				} else { // 存在数据
					if (field == 'colLabel' || field == 'colOrder' || field == 'attribute11' || field == 'remark') {
						$('#cbbTabColumnsDataGrid').datagrid('selectRow', index).datagrid('editCell', {
							index : index,
							field : field
						});
					} else if (field == 'colLength') {
						$('#cbbTabColumnsDataGrid').datagrid('selectRow', index).datagrid('editCell', {
							index : index,
							field : field
						});
					} else if (field == 'colName' || field == 'colType' || field == 'colDecimal') {
						
						//commonLang.tip.alert'提示'  commonLang.tip.alert7'该表已经存在数据，不允许修改此列！'
						$.messager.alert(commonLang.tip.alert,commonLang.tip.alert7 , 'warning');
						editIndex = index;
						return false;
					}
				}
			}
		}
		editIndex = index;
	}
}
/**
 * 根据中文名称改变英文名称
 * 
 * @param index
 */
function changeName(editIndex, index, field) {
	$('#cbbTabColumnsDataGrid').datagrid('selectRow', editIndex).datagrid(
			'beginEdit', editIndex);
	// 定义事件
	var editors = $('#cbbTabColumnsDataGrid').datagrid('getEditors', editIndex);
	var sfgzEditor = editors[0];
	sfgzEditor.target.bind('change', function() {
		var value = sfgzEditor.target.val();
		// 请求后台，转换字段名称
		$.ajax({
			url : 'platform/aos/commtempletmanagerController/onChangeCol',
			data : {
				name : value
			},
			type : 'post',
			dataType : 'json',
			success : function(result) {
				var editors = $('#cbbTabColumnsDataGrid').datagrid(
						'getEditors', editIndex);
				var sfgzEditor = editors[1];
				sfgzEditor.target.val(result.textpinyin);
			}
		});
	});
	$('#cbbTabColumnsDataGrid').datagrid('endEdit', editIndex);

	$('#cbbTabColumnsDataGrid').datagrid('selectRow', index).datagrid(
			'editCell', {
				index : index,
				field : field
			});
	editIndex = index;
}

/**
 * 【是否显示】转换方法
 * 
 * @param value
 * @param rowData
 * @param rowIndex
 * @returns {String}
 */
function fomaterIsShow(value, rowData, rowIndex) {
	var c = "";
	if (rowData.colIsDisplay == "Y") {
		c = "<input type='checkbox' id='"
				+ rowData.id
				+ "IsShow' checked='checked' value='Y' onclick='onCheckIsShow(\""
				+ rowData.id + "IsShow\"," + rowIndex + ")' />";
	} else {
		c = "<input type='checkbox' id='" + rowData.id
				+ "IsShow' value='N' onclick='onCheckIsShow(\"" + rowData.id
				+ "IsShow\"," + rowIndex + ")' />";
	}
	return c;
}

/**
 * 【是否显示】复选框值发生改变更新datagrid对应的值
 * 
 * @returns
 */
function onCheckIsShow(id, rowIndex) {
	if (endEditing()) {
		$("#cbbTabColumnsDataGrid").datagrid('removeEditor', 'colIsDisplay'); // 删除【是否显示】编辑器
		$("#cbbTabColumnsDataGrid").datagrid('addEditor', { // 添加【是否显示】编辑器
			field : 'colIsDisplay',
			editor : {
				type : 'text'
			}
		});
		var checkbox = document.getElementById(id);
		var isCheck = false;
		if (checkbox.checked) {
			isCheck = true;
		}
		if (isCheck) {
			$('#cbbTabColumnsDataGrid').datagrid('selectRow', rowIndex)
					.datagrid('beginEdit', rowIndex);
			var editors = $('#cbbTabColumnsDataGrid').datagrid('getEditors',
					rowIndex);
			var sfgzEditor = editors[6];
			sfgzEditor.target.val("Y");
			$('#cbbTabColumnsDataGrid').datagrid('endEdit', rowIndex);
		} else {
			$('#cbbTabColumnsDataGrid').datagrid('selectRow', rowIndex)
					.datagrid('beginEdit', rowIndex);
			var editors = $('#cbbTabColumnsDataGrid').datagrid('getEditors',
					rowIndex);
			var sfgzEditor = editors[6];
			sfgzEditor.target.val("N");
			$('#cbbTabColumnsDataGrid').datagrid('endEdit', rowIndex);
		}
	} else {
		var checkbox = document.getElementById(id);
		var isCheck = false;
		if (checkbox.checked) {
			isCheck = true;
		}
		if (isCheck) {
			document.getElementById(id).checked = false;
		} else {
			document.getElementById(id).checked = true;
		}
	}
}

/**
 * 【是否必著】转换方法
 * 
 * @param value
 * @param rowData
 * @param rowIndex
 * @returns {String}
 */
function fomaterIsMust(value, rowData, rowIndex) {
	var c = "";
	if (rowData.colIsMust == "Y") {
		c = "<input type='checkbox' id='"
				+ rowData.id
				+ "IsMust' checked='checked' value='Y' onclick='onCheckIsMust(\""
				+ rowData.id + "IsMust\"," + rowIndex + ")'/>";
	} else {
		c = "<input type='checkbox' id='" + rowData.id
				+ "IsMust' value='N' onclick='onCheckIsMust(\"" + rowData.id
				+ "IsMust\"," + rowIndex + ")'/>";
	}
	return c;
}

/**
 * 【是否必著】复选框值发生改变更新datagrid对应的值
 * 
 * @returns
 */
function onCheckIsMust(id, rowIndex) {
	if (endEditing()) {
		$("#cbbTabColumnsDataGrid").datagrid('removeEditor', 'colIsMust'); // 删除【是否必著】编辑器
		$("#cbbTabColumnsDataGrid").datagrid('addEditor', { // 添加【是否必著】编辑器
			field : 'colIsMust',
			editor : {
				type : 'text'
			}
		});
		var checkbox = document.getElementById(id);
		var isCheck = false;
		if (checkbox.checked) {
			isCheck = true;
		}
		if (isCheck) {
			$('#cbbTabColumnsDataGrid').datagrid('selectRow', rowIndex)
					.datagrid('beginEdit', rowIndex);
			var editors = $('#cbbTabColumnsDataGrid').datagrid('getEditors',
					rowIndex);
			var sfgzEditor = editors[7];
			/*
			 * // 表中存在数据，不能将【是否必著】修改为 是 if (isHasData) {
			 * sfgzEditor.target.val("N");
			 * $('#cbbTabColumnsDataGrid').datagrid('endEdit', rowIndex);
			 * alert("表中存在数据，不能将【是否必著】修改为【是】！"); return false; }
			 */
			sfgzEditor.target.val("Y");
			$('#cbbTabColumnsDataGrid').datagrid('endEdit', rowIndex);
		} else {
			$('#cbbTabColumnsDataGrid').datagrid('selectRow', rowIndex)
					.datagrid('beginEdit', rowIndex);
			var editors = $('#cbbTabColumnsDataGrid').datagrid('getEditors',
					rowIndex);
			var sfgzEditor = editors[7];
			sfgzEditor.target.val("N");
			$('#cbbTabColumnsDataGrid').datagrid('endEdit', rowIndex);
		}
	} else {
		var checkbox = document.getElementById(id);
		var isCheck = false;
		if (checkbox.checked) {
			isCheck = true;
		}
		if (isCheck) {
			document.getElementById(id).checked = false;
		} else {
			document.getElementById(id).checked = true;
		}
	}
}
/**
 * 编辑数据
 */
function endEditing() {
	if (editIndex == undefined) {
		return true;
	}
	if ($('#cbbTabColumnsDataGrid').datagrid('validateRow', editIndex)) {
		$('#cbbTabColumnsDataGrid').datagrid('endEdit', editIndex);
		var rowData = $('#cbbTabColumnsDataGrid').datagrid('getData').rows[editIndex];
		if (rowData == undefined) {
			return true;
		}
		var colLabel = rowData.colLabel;
		if (colLabel == "" || colLabel == undefined) {
			$.messager.show({
				title : commonLang.tip.alert,//'提示',
				//commonLang.tip.content3 "第"commonLang.tip.content3.content4 "行【字段中文名】不能为空！" 
				msg : commonLang.tip.content3 + (editIndex + 1) + commonLang.tip.content3.content4,
				timeout : 3000,
				showType : 'slide'
			});
			$('#cbbTabColumnsDataGrid').datagrid('selectRow', editIndex)
					.datagrid('editCell', {
						index : editIndex,
						field : 'colLabel'
					});
			return false;
		}

		var colName = rowData.colName;
		var regn = /^(?![0-9])\w+$/; // 字段名正则（包含字母数字下划线，不能已数字开头，20位）
		if (colName == "" || colName == undefined || !regn.test(colName)) {
			$.messager.show({
				title : commonLang.tip.alert,//'提示',
				//commonLang.tip.content3 "第"commonLang.tip.content3.content5 "行【字段名】输入非法，请查证！" 
				msg : commonLang.tip.content3  + (editIndex + 1) + commonLang.tip.content3.content5,
				timeout : 3000,
				showType : 'slide'
			});
			$('#cbbTabColumnsDataGrid').datagrid('selectRow', editIndex)
					.datagrid('editCell', {
						index : editIndex,
						field : 'colName'
					});
			return false;
		}
		var colType = rowData.colType; // 字段类型
		var colTypeValue = "";
		if (colType == 'string') {
			colTypeValue = commonLang.dataType.string;// "字符串";
		} else if (colType == 'integer') {
			colTypeValue = commonLang.dataType.integer;// "整型";
		} else if (colType == 'date') {
			colTypeValue = commonLang.dataType.date;// "日期时间型";
		} else if (colType == 'float') {
			colTypeValue = commonLang.dataType.float;// "浮点型";
		} else if (colType == 'blob') {
			colTypeValue = "BLOB";
		} else if (colType == 'clob') {
			colTypeValue = "CLOB";
		}
		var colLength = rowData.colLength; // 长度
		var colDecimal = rowData.colDecimal; // 小数位数
		/*
		 * if (colLength < length) {// 字段类型长度可以修改，只能调大 $.messager.show({ title :
		 * '提示', msg : "第" + (editIndex + 1) + "行，【长度】可以修改，只能调大", timeout :
		 * 3000, showType : 'slide' });
		 * $('#cbbTabColumnsDataGrid').datagrid('selectRow', editIndex)
		 * .datagrid('editCell', { index : editIndex, field : 'colLength' });
		 * return false; }
		 */
		if (colType == "string" && colLength > 4000) { // 验证长度
			$.messager.show({
				title : commonLang.tip.alert,//'提示',
				//commonLang.tip.content3 "第" commonLang.tip.content3.content6 "行，因为选择的【字段类型】为“" 
				//commonLang.tip.content7 因此【长度】的值不能超过
				msg : commonLang.tip.content3 + (editIndex + 1) + commonLang.tip.content3.content6 + colTypeValue
						+commonLang.tip.content7+ "4000！",
				timeout : 3000,
				showType : 'slide'
			});
			$('#cbbTabColumnsDataGrid').datagrid('selectRow', editIndex)
					.datagrid('editCell', {
						index : editIndex,
						field : 'colLength'
					});
			return false;
		}
		if ((colType == "integer" || colType == "float") && colLength > 16) { // 验证长度
			$.messager.show({
				title : commonLang.tip.alert,//'提示',
				//commonLang.tip.content3 "第" commonLang.tip.content3.content6 "行，因为选择的【字段类型】为“" 
				//commonLang.tip.content7  因此【长度】的值不能超过
				msg : commonLang.tip.content3 + (editIndex + 1) + commonLang.tip.content3.content6+ colTypeValue
						+commonLang.tip.content7 + "16！",
				timeout : 3000,
				showType : 'slide'
			});
			$('#cbbTabColumnsDataGrid').datagrid('selectRow', editIndex)
					.datagrid('editCell', {
						index : editIndex,
						field : 'colLength'
					});
			return false;
		}
		if (colType == "float" && colDecimal > 6) { // 验证小数位数
			$.messager.show({
				title :commonLang.tip.alert,// '提示',
				//commonLang.tip.content3 "第" commonLang.tip.content3.content6 "行，因为选择的【字段类型】为“" 
				//commonLang.tip.content7  因此【长度】的值不能超过
				msg : commonLang.tip.content3 + (editIndex + 1) +commonLang.tip.content3.content6 + colTypeValue
						+ commonLang.tip.content7+"6！",
				timeout : 3000,
				showType : 'slide'
			});
			$('#cbbTabColumnsDataGrid').datagrid('selectRow', editIndex)
					.datagrid('editCell', {
						index : editIndex,
						field : 'colDecimal'
					});
			return false;
		}
		
		if ((colType == "string" || colType == "date" || colType == "clob"
				|| colType == "integer" || colType == "blob")
				&& colDecimal != "" && colDecimal != undefined) { // 验证小数位数
			$.messager.show({
				title : commonLang.tip.alert,// '提示',
				//commonLang.tip.content3 "第" commonLang.tip.content3.content6 "行，因为选择的【字段类型】为“" 
				//commonLang.tip.content10  ”，因此【小数位数】的值必须为空！
				msg : commonLang.tip.content3  + (editIndex + 1) +  commonLang.tip.content3.content6 + colTypeValue
						+ commonLang.tip.content10 ,
				timeout : 3000,
				showType : 'slide'
			});
			$('#cbbTabColumnsDataGrid').datagrid('selectRow', editIndex)
					.datagrid('editCell', {
						index : editIndex,
						field : 'colDecimal'
					});
			return false;
		}
		if ((colType == "date" || colType == "clob" || colType == "blob")
				&& colLength != "" && colLength != undefined) { // 验证长度
			$.messager.show({
				title : commonLang.tip.alert,// '提示',
				//commonLang.tip.content3 "第" commonLang.tip.content3.content6 "行，因为选择的【字段类型】为“" 
				//commonLang.tip.content19 ”，因此【长度】的值必须为空！"
				msg : commonLang.tip.content3 + (editIndex + 1) + commonLang.tip.content3.content6  + colTypeValue
						+ commonLang.tip.content19,
				timeout : 3000,
				showType : 'slide'
			});
			$('#cbbTabColumnsDataGrid').datagrid('selectRow', editIndex)
					.datagrid('editCell', {
						index : editIndex,
						field : 'colLength'
					});
			return false;
		}
		return true;
	} else {
		$.messager.show({
			title : commonLang.tip.alert,//'提示',
			//commonLang.tip. checkData"请检查数据是否正确！"
			msg :commonLang.tip. checkData,
			timeout : 3000,
			showType : 'slide'
		});
		return false;
	}
}
/**
 * 追加行
 */
function append() {
	if (endEditing()) {
		$("#cbbTabColumnsDataGrid").datagrid('removeEditor', 'colIsSys'); // 删除【是否系统字段】编辑器
		$("#cbbTabColumnsDataGrid").datagrid('addEditor', { // 添加【是否系统字段】编辑器
			field : 'colIsSys',
			editor : {
				type : 'checkbox',
				options : {
					on : 'Y',
					off : 'N'
				}
			}
		});
		$("#cbbTabColumnsDataGrid").datagrid('removeEditor', 'colIsMust'); // 删除【是否必著】编辑器
		$("#cbbTabColumnsDataGrid").datagrid('addEditor', { // 添加【是否必著】编辑器
			field : 'colIsMust',
			editor : {
				type : 'checkbox',
				options : {
					on : 'Y',
					off : 'N'
				}
			}
		});
		$("#cbbTabColumnsDataGrid").datagrid('removeEditor', 'colIsDisplay'); // 删除【是否可见】编辑器
		$("#cbbTabColumnsDataGrid").datagrid('addEditor', { // 添加【是否可见】编辑器
			field : 'colIsDisplay',
			editor : {
				type : 'checkbox',
				options : {
					on : 'Y',
					off : 'N'
				}
			}
		});
		var rid = new Date().getTime();
		// 循环页面数据找出最大order
		var rows = $("#cbbTabColumnsDataGrid").datagrid('getRows');
		var num = 0;//表单顺序号
		for ( var i = 0; i < rows.length; i++) {
			var order = rows[i].colOrder;
			if (order > num) {
				num = order;
			}
		}
		var numtab = 0;//表格顺序号
		for ( var i = 0; i < rows.length; i++) {
			var order = rows[i].attribute11;
			if (order > numtab) {
				numtab = order;
			}
		}
		$('#cbbTabColumnsDataGrid').datagrid('appendRow', {
			id : rid,
			colOrder : num + 1,
			attribute11 : numtab + 1,
			colType : 'string',
			colIsDisplay : 'Y',
			colIsMust : 'N',
			colIsSys : 'N',
			colLength : '30',
			isNew : 'Y'
		});
		$('#cbbTabColumnsDataGrid').datagrid('endEdit', editIndex);
		editIndex = $('#cbbTabColumnsDataGrid').datagrid('getRows').length - 1;
		onClickCell(editIndex, "colLabel", "");
		// 将小数位数设置为只读
		var editors = $('#cbbTabColumnsDataGrid').datagrid('getEditors',
				editIndex);
		var sfgzEditor2 = editors[4];
		var decimalInput = sfgzEditor2.target; // 得到文本框对象
		decimalInput.numberbox('setValue', "");
		decimalInput.prop('readonly', true); // 设值只读
	}
}

/**
 * 删除所选的行
 */
function removeit() {
	var rows = $('#cbbTabColumnsDataGrid').datagrid('getChecked');
	if (rows == "") {
		//commonLang.tip.alert '提示', commonLang.tip.content2 '请选择要删除的记录！'
		$.messager.alert(commonLang.tip.alert, commonLang.tip.content2 ,'warning');
		return;
	}
	for ( var i = 0; i < rows.length; i++) {
		var colIsSys = rows[i].colIsSys;
		if ('Y' == colIsSys) {
			//commonLang.tip.alert'提示',commonLang.tip.content'请勿删除系统字段！'
			$.messager.alert(commonLang.tip.alert,commonLang.tip.content,'warning');
			return;
		}
	}
	//commonLang.tip.confirm '请确认',commonLang.tip.confirmContent2 '如此字段在表中已存在数据，那么数据也将会被删除！您确定要删除当前所选的字段？'
	$.messager.confirm(commonLang.tip.confirm, commonLang.tip.confirmContent2, function(b) {
		if (b) {
			// 删除字段
			var deleteData = JSON.stringify(rows);
			$.ajax({
				url : 'platform/aos/commtablemanagerController/deleteCbbTabColumnsData.json',
				data : {
					deleteData : deleteData,
					sysId : sysId,
					nodeId : nodeId,
					nodeName : nodeName,
					tableName : tableName,
					isTrueTable : isTrueTable
				},
				type : 'post',
				dataType : 'json',
				success : function(result) {
					if (result.flag == "failure") {
						parent.parent.parent.$.messager.show({
							title : commonLang.tip.alert,//'提示',
							msg : result.mes
						});
					} else {
						parent.parent.parent.$.messager.show({
							title :commonLang.tip.alert,// '提示',
							//commonLang.optip.success "删除成功！"
							msg : commonLang.optip.success
						});
					}
					reloadDataGrid();
					// 给隐藏表格加载数据
					reloadHiddenDataGrid();
				}
			});
		}
	});
}
/**
 * 提交改变的记录
 */
function accept() {

	if (endEditing()) {
		// 新增字段
		var insertRows = $("#cbbTabColumnsDataGrid").datagrid('getChanges', 'inserted');
		var insertData = JSON.stringify(insertRows);
		// 更新字段
		var updateRows = $("#cbbTabColumnsDataGrid").datagrid('getChanges', 'updated');
		var updateData = JSON.stringify(updateRows);
		if (insertRows == "" && updateRows == "") {
			//commonLang.tip.alert '提示',commonLang.tip.alert2 没有可保存的记录！'
			$.messager.alert(commonLang.tip.alert, commonLang.tip.alert2, 'warning');
			return false;
		}
		// 进行字段名重复校验
		if ("N" == isTemplet) { // 数据表格显示部分字段
			// 1、是否和显示表格数据重复
			var rows = $("#cbbTabColumnsDataGrid").datagrid('getRows');
			var rowsNum = JSON.stringify(rows.length);
			for ( var i = 0; i < rowsNum; i++) {
				var colName = rows[i].colName;
				for ( var j = 0; j < rowsNum; j++) {
					var colNameTemp = rows[j].colName;
					if (i != j) {
						if (colName.toUpperCase() == colNameTemp.toUpperCase()) {
							//commonLang.tip.alert'提示',commonLang.tip.filed '字段'，commonLang.tip.alert3 '已存在，请检查！'
							$.messager.alert(commonLang.tip.alert,commonLang.tip.filed + colName + commonLang.tip.alert3,'warning');
							return false;
						}
					}
				}
			}
			// 2、是否和隐藏表格数据重复
			var hiddeRrows = $("#hiddenTable").datagrid('getRows');
			var hiddeRrowsNum = JSON.stringify(hiddeRrows.length);
			for ( var i = 0; i < rowsNum; i++) {
				var colName = rows[i].colName;
				for ( var j = 0; j < hiddeRrowsNum; j++) {
					var colNameTemp = hiddeRrows[j].colName;
					if (i != j) {
						if (colName.toUpperCase() == colNameTemp.toUpperCase()) {
							//commonLang.tip.alert'提示',commonLang.tip.filed '字段'，commonLang.tip.alert3 '已存在，请检查！'
							$.messager.alert(commonLang.tip.alert,commonLang.tip.filed  + colName + commonLang.tip.alert3,'warning');
							return false;
						}
					}
				}
			}
		} else { // 数据表格显示所有字段
			// 循环数据表格所有行，校验字段名是否重复
			var rows = $("#cbbTabColumnsDataGrid").datagrid('getRows');
			var rowsNum = JSON.stringify(rows.length);
			for ( var i = 0; i < rowsNum; i++) {
				var colName = rows[i].colName;
				for ( var j = 0; j < rowsNum; j++) {
					var colNameTemp = rows[j].colName;
					if (i != j) {
						if (colName.toUpperCase() == colNameTemp.toUpperCase()) {
							//commonLang.tip.alert'提示',commonLang.tip.filed '字段'，commonLang.tip.alert3 '已存在，请检查！'
							$.messager.alert(commonLang.tip.alert,commonLang.tip.filed  + colName + commonLang.tip.alert3,'warning');
							return false;
						}
					}
				}
			}
		}
		MaskUtil.mask();
		$.ajax({
			url : 'platform/aos/commtablemanagerController/saveCbbTabColumnsData.json',
			data : {
				insertData : insertData,
				updateData : updateData,
				sysId : sysId,
				nodeId : nodeId,
				nodeName : nodeName,
				tableName : tableName,
				isTrueTable : isTrueTable,
				nodeCode : nodeCode
			},
			type : 'post',
			dataType : 'json',
			success : function(result) {
				MaskUtil.unmask();
				if (result.flag == "failure") {
				
					//commonLang.tip.alert'提示'
					parent.parent.parent.$.messager.show({
						title : commonLang.tip.alert,
						msg : result.mes
					});
				} else {
					isOk = true;
					parent.parent.parent.$.messager.show({
						title :commonLang.tip.alert,// '提示',
						msg :commonLang.optip.saveSuccess// "保存成功"
					});
				}
				reloadDataGrid();
				// 给隐藏表格加载数据
				reloadHiddenDataGrid();
			},
			error: function() {
				MaskUtil.unmask();
			}
		});
	}
}
/**
 * 刷新表格数据
 */
function reloadDataGrid() {
	var url = 'platform/aos/commtablemanagerController/getCbbTabColumnsData.json?sysId='
			+ sysId + '&tableName=' + tableName + '&isTemplet=' + isTemplet;
	$('#cbbTabColumnsDataGrid').datagrid("options").url = url;
	$("#cbbTabColumnsDataGrid").datagrid('load', {
		param : null
	});
}

/**
 * 转换列类型
 * 
 * @param value
 * @param row
 * @param index
 * @returns
 */
function fomaterColType(value, row, index) {
	var type = "";
	if (value == 'string') {
		type = "字符串";//"字符串";
	} else if (value == 'integer') {
		type = "整型";// "整型";
	} else if (value == 'date') {
		type = "日期时间型";//"日期时间型";
	} else if (value == 'float') {
		type = "浮点型";//"浮点型";
	} else if (value == 'blob') {
		type = "BLOB";
	} else if (value == 'clob') {
		type = "CLOB";
	}
	if (row.colIsDisplay == "N" && row.colIsSys == "Y") {
		return "<font color='red'>" + type + "</font>";
	} else {
		return type;
	}
}

/**
 * 【是否系统字段】转换方法
 * 
 * @param value
 * @param row
 * @param index
 * @returns
 */
function fomaterIsSys(value, rowData, rowIndex) {
	var c = "";
	if (rowData.colIsSys == "Y") {
		c = "<input type='checkbox' id='" + rowData.id
				+ "IsSys' checked='checked' value='Y' onclick='onCheckIsSys(\""
				+ rowData.id + "IsSys\"," + rowIndex + ")' />";
	} else {
		c = "<input type='checkbox' id='" + rowData.id
				+ "IsSys' value='N' onclick='onCheckIsSys(\"" + rowData.id
				+ "IsSys\"," + rowIndex + ")' />";
	}
	return c;
}

/**
 * 【是否系统字段】复选框值发生改变更新datagrid对应的值
 * 
 * @returns
 */
function onCheckIsSys(id, rowIndex) {
	if (endEditing()) {
		$("#cbbTabColumnsDataGrid").datagrid('removeEditor', 'colIsSys'); // 删除【是否系统字段】编辑器
		$("#cbbTabColumnsDataGrid").datagrid('addEditor', { // 添加【是否系统字段】编辑器
			field : 'colIsSys',
			editor : {
				type : 'text'
			}
		});
		var checkbox = document.getElementById(id);
		var isCheck = false;
		if (checkbox.checked) {
			isCheck = true;
		}
		if (isCheck) {
			$('#cbbTabColumnsDataGrid').datagrid('selectRow', rowIndex)
					.datagrid('beginEdit', rowIndex);
			var editors = $('#cbbTabColumnsDataGrid').datagrid('getEditors',
					rowIndex);
			var sfgzEditor = editors[5];
			sfgzEditor.target.val("Y");
			$('#cbbTabColumnsDataGrid').datagrid('endEdit', rowIndex);
		} else {
			$('#cbbTabColumnsDataGrid').datagrid('selectRow', rowIndex)
					.datagrid('beginEdit', rowIndex);
			var editors = $('#cbbTabColumnsDataGrid').datagrid('getEditors',
					rowIndex);
			var sfgzEditor = editors[5];
			sfgzEditor.target.val("N");
			$('#cbbTabColumnsDataGrid').datagrid('endEdit', rowIndex);
		}
	} else {
		var checkbox = document.getElementById(id);
		var isCheck = false;
		if (checkbox.checked) {
			isCheck = true;
		}
		if (isCheck) {
			document.getElementById(id).checked = false;
		} else {
			document.getElementById(id).checked = true;
		}
	}
}

/**
 * 打开参考模板页面
 */
function openTemplet() {
	var dialogId = "templetFieldDialog";
	var toActionUrl = "platform/aos/commtablemanagerController/toCommTemplet?dialogId="
			+ dialogId
			+ "&sysId="
			+ sysId
			+ "&tableName="
			+ tableName
			+ "&copyNodeData=" + copyNodeData + "&nodeId=" + nodeId;
	//commonLang.tip.content17"复制模板"
	var usdAdd = new CommonDialog(dialogId, "800", "400", toActionUrl, commonLang.tip.content17,
			false, true, false, '', true);
	if (endEditing()) {
		var changeRows = $('#cbbTabColumnsDataGrid').datagrid("getChanges");
		if (changeRows == "") {
			usdAdd.show();
		} else {
			$.messager.show({
				title :commonLang.tip.alert,// '提示'
				//commonLang.tip.content18"请保存修改的数据后再复制！"
				msg : commonLang.tip.content18
			});
		}
	}
}
/**
 * 生成菜单
 */
function createMenu() {
	$.ajax({
		url : 'platform/aos/commtablemanagerController/createMenu.json',
		data : {
			sysId : sysId,
			nodeId : nodeId,
			nodeName : nodeName,
			tableName : tableName
		},
		type : 'post',
		dataType : 'json',
		success : function(result) {
			$.messager.show({
				title : commonLang.tip.alert,//'提示',
				msg : result.msg
			});
		}
	});
}

function selectAllCol() {
	if (isTemplet == 'Y') { // 显示基本字段
		isTemplet = 'N';
		document.getElementById("selectAllCol").style.display = '';
		document.getElementById("selectCol").style.display = 'none';

	} else { // 显示所有字段
		isTemplet = 'Y';
		document.getElementById("selectAllCol").style.display = 'none';
		document.getElementById("selectCol").style.display = '';

	}
	var url = 'platform/aos/commtablemanagerController/getCbbTabColumnsData.json?sysId='
			+ sysId + '&tableName=' + tableName + '&isTemplet=' + isTemplet;
	$('#cbbTabColumnsDataGrid').datagrid("options").url = url;
	$("#cbbTabColumnsDataGrid").datagrid('load', {
		param : null
	});
	// 给隐藏表格加载数据
	reloadHiddenDataGrid();
}
/**
 * 导出结构数据
 */
function exportData() {
	var url = baseurl
			+ 'platform/aos/commtablemanagerController/exportData?sysId='
			+ sysId + '&tableName=' + tableName + '&nodeId=' + nodeId
			+ "&isTemplet=" + isTemplet;
	var rows = $("#cbbTabColumnsDataGrid").datagrid("getRows");
	if (rows == "" || rows == null) {
		//commonLang.tip.alert '提示'  commonLang.tip.content11 '请先添加数据再导出excel文件！'
		$.messager.alert(commonLang.tip.alert,commonLang.tip.content11,'warning');
		return;
	} else {
		window.open(url);
	}
}
/**
 * 导出结构模版
 */
function exportExcelMoudle() {
	var url = baseurl
			+ 'platform/aos/commtablemanagerController/exportExcelMoudle';
	window.open(url);
}

/**
 * 导入对话框
 */
function openImportDialog() {
	var dialogId = "FormImportDialog";
	var toActionUrl = 'avicit/cbb/techclass/tabledefine/commtablemanager/table_structure_import.jsp?sysId='
			+ sysId
			+ '&tableName='
			+ tableName
			+ '&nodeId='
			+ nodeId
			+ '&nodeName=' + nodeName + "&dialogId=" + dialogId + "&isTrueTable=" + isTrueTable;
	//commonLang.tip.content12 "导入结构数据"
	var usdImport = new CommonDialog(dialogId, "530", "220", toActionUrl, commonLang.tip.content12,
			false, true, false);
	usdImport.show();
}

/**
 * 字段类型选择事件
 * 
 * @param record
 */
function typeSelect(record) {
	type = record.lookupCode;
}
/**
 * 字段类型选择弹出面板事件
 */
function typeOnHidePanel() {
	if (type != undefined) {
		var length = ""; // 长度
		var lengthEdit = true; // 长度是否可编辑，默认只读
		var decimal = ""; // 小数位数
		var decimalEdit = true; // 小数位数是否可编辑，默认只读
		if (type == "string") {
			length = 30;
			lengthEdit = false;
		} else if (type == "integer") {
			length = 16;
			lengthEdit = false;
		} else if (type == "float") {
			length = 16;
			decimal = 2;
			lengthEdit = false;
			decimalEdit = false;
		}
		// 关闭行编辑
		$('#cbbTabColumnsDataGrid').datagrid('endEdit', editIndex);
		// 打开行编辑
		$('#cbbTabColumnsDataGrid').datagrid('selectRow', editIndex).datagrid(
				'beginEdit', editIndex);
		var editors = $('#cbbTabColumnsDataGrid').datagrid('getEditors',
				editIndex);
		var sfgzEditor1 = editors[3];
		var lengthInput = sfgzEditor1.target; // 得到文本框对象
		lengthInput.numberbox('setValue', length);
		lengthInput.prop('readonly', lengthEdit); // 可编辑
		var sfgzEditor2 = editors[4];
		var decimalInput = sfgzEditor2.target; // 得到文本框对象
		decimalInput.numberbox('setValue', decimal);
		decimalInput.prop('readonly', decimalEdit); // 可编辑
		// 关闭行编辑
		$('#cbbTabColumnsDataGrid').datagrid('endEdit', editIndex);
		// 打开【字段类型】单元格编辑
		onClickCell(editIndex, "colType", "");
		type = undefined;
	}
}

function fomaterColLabel(value, row, index) {
	if (value == null || value == "null") {
		value = "";
	}
	if (row.colIsDisplay != "Y" && row.colIsSys != "N") {
		return "<font color='red'>" + value + "</font>";
	} else {
		return value;
	}
}

function fomaterColName(value, row, index) {
	if (value == null || value == "null") {
		value = "";
	}
	if (row.colIsDisplay != "Y" && row.colIsSys != "N") {
		return "<font color='red'>" + value + "</font>";
	} else {
		return value;
	}
}

function fomaterColLength(value, row, index) {
	if (value == null || value == "null") {
		value = "";
	}
	if (row.colIsDisplay != "Y" && row.colIsSys != "N") {
		return "<font color='red'>" + value + "</font>";
	} else {
		return value;
	}
}

function fomaterColDecimal(value, row, index) {
	if (value == null || value == "null") {
		value = "";
	}
	if (row.colIsDisplay != "Y" && row.colIsSys != "N") {
		return "<font color='red'>" + value + "</font>";
	} else {
		return value;
	}
}

function fomaterColOrder(value, row, index) {
	if (value == null || value == "null") {
		value = "";
	}
	if (row.colIsDisplay != "Y" && row.colIsSys != "N") {
		return "<font color='red'>" + value + "</font>";
	} else {
		return value;
	}
}

function fomaterColTabOrder(value, row, index) {
	if (value == null || value == "null") {
		value = "";
	}
	if (row.colIsDisplay != "Y" && row.colIsSys != "N") {
		return "<font color='red'>" + value + "</font>";
	} else {
		return value;
	}
}

function fomaterRemark(value, row, index) {
	if (value == null || value == "null") {
		value = "";
	}
	if (row.colIsDisplay != "Y" && row.colIsSys != "N") {
		return "<font color='red'>" + value + "</font>";
	} else {
		return value;
	}
}
/*******************************************************************************
 * 给隐藏表格加载数据
 */
function reloadHiddenDataGrid() {
	var url = 'platform/aos/commtablemanagerController/getHiddenCbbTabColumnsData.json?sysId='
			+ sysId + '&tableName=' + tableName + '&isTemplet=' + isTemplet;
	$('#hiddenTable').datagrid("options").url = url;
	$("#hiddenTable").datagrid('load', {
		param : null
	});
}
/**
 * 关闭语言选择对话框
 */
function closeL(id){
	$("#chooseL").dialog('close');
};

//打开语言选择
function openLanguageForm(datagrid,type){
	var rows = $("#"+datagrid).datagrid('getChecked');
	if(rows.length !== 1){
		//commonLang.tip.alert5 "请选择一条数据！"
		$.messager.alert(commonLang.tip.alert,commonLang.tip.alert5, 'warning');
		return false;
	}
	var id="";
	if(type=="1"){
		id=rows[0].id;
	}else{
		id=rows[0].ID;
	}
	//commonLang.dialog.i18nLanguageSet   "多语言设置"
	this.cData = new CommonDialog("chooseL","700","400",'platform/aos/commtablemanagerController/chooseLanguage/'+id+"/"+type,commonLang.dialog.i18nLanguageSet,false,true,false);

	this.cData.show();
};

function fomaterClusterCol(value, rowData, rowIndex) {
	var c = "";
	if (rowData.attribute01 == "Y") {
		
		c = "<input type='checkbox' id='"
				+ rowData.id
				+ "ClusterCol' checked='checked' value='Y' onclick='onCheckClusterCol(\""
				+ rowData.id + "ClusterCol\"," + rowIndex + ")' />";
	} else {
		c = "<input type='checkbox' id='" + rowData.id
				+ "ClusterCol' value='N' onclick='onCheckClusterCol(\"" + rowData.id
				+ "ClusterCol\"," + rowIndex + ")' />";
	}
	return c;
}

function onCheckClusterCol(id, rowIndex) {
	if (endEditing()) {
		$("#cbbTabColumnsDataGrid").datagrid('removeEditor', 'attribute01'); // 删除编辑器
		$("#cbbTabColumnsDataGrid").datagrid('addEditor', { // 添加编辑器
			field : 'attribute01',
			editor : {
				type : 'text'
			}
		});
		var checkbox = document.getElementById(id);
		var isCheck = false;
		if (checkbox.checked) {
			isCheck = true;
		}
		if (isCheck) {
			$('#cbbTabColumnsDataGrid').datagrid('selectRow', rowIndex).datagrid('beginEdit', rowIndex);
			var editors = $('#cbbTabColumnsDataGrid').datagrid('getEditors',rowIndex);
			var sfgzEditor = editors[11];
			sfgzEditor.target.val("Y");
			$('#cbbTabColumnsDataGrid').datagrid('endEdit', rowIndex);
		} else {
			$('#cbbTabColumnsDataGrid').datagrid('selectRow', rowIndex).datagrid('beginEdit', rowIndex);
			var editors = $('#cbbTabColumnsDataGrid').datagrid('getEditors',rowIndex);
			var sfgzEditor = editors[11];
			sfgzEditor.target.val("N");
			$('#cbbTabColumnsDataGrid').datagrid('endEdit', rowIndex);
		}
	} else {
		var checkbox = document.getElementById(id);
		var isCheck = false;
		if (checkbox.checked) {
			isCheck = true;
		}
		if (isCheck) {
			document.getElementById(id).checked = false;
		} else {
			document.getElementById(id).checked = true;
		}
	}
}

function syncToSubOrg(){
	$.messager.confirm('请确认', '您确定要将字段同步至所有下级组织?', function(b) {
		if (b) {
			MaskUtil.mask();
			$.post("LantopArchiveClassController/doSyncArchiveClassAndTables",{
				nodeId:parent.parent.$("#classTree").tree("getSelected").id
			},function (result){//debugger
				if(result.flag == "success"){
					parent.parent.parent.$.messager.show({
						title : '提示',
						msg : "同步成功!"
					});
				}else{
					$.messager.alert('提示', '同步失败!', 'warning');
				}
				MaskUtil.unmask();
			});
		}
	});
}